package com.ssy.lingxi.member.merchant.model.vo.lifecycle.request;

import com.ssy.lingxi.member.merchant.handler.annotation.DateStringFormatAnnotation;
import com.ssy.lingxi.member.merchant.model.vo.basic.request.FileUploadVO;

import javax.validation.Valid;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Positive;
import java.io.Serializable;
import java.util.List;

/**
 * 会员考评修改VO
 * @author yzc
 * @version 2.0.0
 * @date 2021/5/17
 */
public class MemberAppraisalUpdateVO implements Serializable {
    private static final long serialVersionUID = 1830941838746529993L;

    /**
     * 数据id
     */
    @NotNull(message = "数据Id要大于等于0")
    @Positive(message = "数据Id要大于等于0")
    private Long id;

    /**
     * 下级会员Id
     */
    @NotNull(message = "下级会员Id要大于0")
    @Positive(message = "下级会员Id要大于0")
    private Long subMemberId;

    /**
     * 下级会员角色Id
     */
    @NotNull(message = "下级会员角色Id要大于0")
    @Positive(message = "下级会员角色Id要大于0")
    private Long subRoleId;

    /**
     * 考评主题
     */
    @NotBlank(message = "考评主题不能为空")
    private String subject;

    /**
     * 考评时间开始, 格式为yyyy-MM-dd
     */
    @DateStringFormatAnnotation(message = "考评时间开始格式错误")
    private String appraisalDayStart;

    /**
     * 考评时间结束, 格式为yyyy-MM-dd
     */
    @DateStringFormatAnnotation(message = "考评时间结束格式错误")
    private String appraisalDayEnd;

    /**
     * 考评完成时间, 格式为yyyy-MM-dd
     */
    @DateStringFormatAnnotation(message = "考评完成时间格式错误")
    private String completeDay;

    /**
     * 考察附件
     */
    @Valid
    private List<FileUploadVO> attachments;

    /**
     * 考评项目
     */
    @Valid
    private List<MemberAppraisalItemAddVO> items;

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public String getSubject() {
        return subject;
    }

    public void setSubject(String subject) {
        this.subject = subject;
    }

    public String getAppraisalDayStart() {
        return appraisalDayStart;
    }

    public void setAppraisalDayStart(String appraisalDayStart) {
        this.appraisalDayStart = appraisalDayStart;
    }

    public String getAppraisalDayEnd() {
        return appraisalDayEnd;
    }

    public void setAppraisalDayEnd(String appraisalDayEnd) {
        this.appraisalDayEnd = appraisalDayEnd;
    }

    public String getCompleteDay() {
        return completeDay;
    }

    public void setCompleteDay(String completeDay) {
        this.completeDay = completeDay;
    }

    public List<FileUploadVO> getAttachments() {
        return attachments;
    }

    public void setAttachments(List<FileUploadVO> attachments) {
        this.attachments = attachments;
    }

    public List<MemberAppraisalItemAddVO> getItems() {
        return items;
    }

    public void setItems(List<MemberAppraisalItemAddVO> items) {
        this.items = items;
    }

    public Long getSubMemberId() {
        return subMemberId;
    }

    public void setSubMemberId(Long subMemberId) {
        this.subMemberId = subMemberId;
    }

    public Long getSubRoleId() {
        return subRoleId;
    }

    public void setSubRoleId(Long subRoleId) {
        this.subRoleId = subRoleId;
    }
}
